#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
#define rep(i, a, b) for (int i = (a); i <= (b); i++)
#define per(i, a, b) for (int i = (a); i >= (b); i--)
#define endl '\n'
const int N = 55;
using ld = long double;
int n, m;
int a[N];
ld dp[N][N][N];
ld C(int n, int m) {
  if (m > n) return 0;
  ld res = 1.0;
  rep(i, 1, m) res *= (n + 1 - i);
  rep(i, 1, m) res /= i;
  return res;
}
void solve() {
  cin >> n >> m;
  rep(i, 1, m) cin >> a[i];
  dp[0][0][0] = 1;
  rep(i, 1, m) {
    dp[i][0][0] = 1.0;
    rep(j, 1, n) {
      rep(k, 0, j) {
        if (k == j) {
          int x = 0;
        }
        int x = (k + a[i] - 1) / a[i];
        rep(y, 0, j - k) {
          int z = max(x, y);
          dp[i][j][z] += dp[i - 1][j - k][y] * C(j, k);
        }
      }
    }
  }
  ld ans = 0;
  rep(i, 0, n) ans += dp[m][n][i] * i;
  rep(i, 1, n) ans /= m;
  cout << fixed << setprecision(20) << ans;
  return;
}
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  int t = 1;
  while (t--) solve();
  return 0;
}